/** 函数类型接口： 对方法传入对参数以及返回值进行约束，可以批量进行约束 */

// 用于计算对接口
interface computed {
  (n: number, m: number, o?: string): number
}

// 加法
let add: computed = (n1, n2, o = "+") => {
  return (n1 + n2)
}

// 除法
let div: computed = (n1, n2, o = '/') => {
  return n1 / n2
}

// 乘法
let multi: computed = (n1, n2, o = "*") => {
  return n1 * n2
}

// 减法
let subtract: computed = (n1, n2, o = '-') => {
  return n1 - n2
}


// 上面的 多个方法实行了 computed ，对批量对方法进行了约束
// 方法实现的入参 可以写类型，可以不写， 因为 接口已经约定了类型

console.log(add(1,2))

console.log(div(4, 2))